package cn.edu.hznu.coursework.service;

import java.util.List;

import cn.edu.hznu.coursework.entity.Course;
import cn.edu.hznu.coursework.entity.Student;
import cn.edu.hznu.coursework.entity.StudentWork;
import cn.edu.hznu.coursework.entity.Teacher;
import cn.edu.hznu.coursework.entity.TeacherWork;

public interface TeacherService {

	public Teacher findTeacherById(Integer id);
	
	public List<Teacher> findAllTeacher();
	
	public Course findCourseById(Integer id);
	
	public Course findCourseByCourseNameAndCourseNo(String courseName, char courseNo);
	
	public List<Course> findCoursesByTeacher(Teacher teacher);
	
	public List<Course> findCoursesByStudents(List<Student> students);
	
	public TeacherWork findTeacherWorkById(Integer id);
	
	public List<TeacherWork> findTeacherWorkByTeacher(Teacher teacher);
	
	public List<TeacherWork> findTeacherWorkByCourse(Course course);
	
	public void publishCourse(Teacher teacher, Course course) throws Exception;
	
	public void publishTeacherWork(Teacher teacher, Course course, TeacherWork work) throws Exception;
	
	public void removeCourse(Integer id) throws Exception;
	
	public void removeTeacherWork(Integer id) throws Exception;
	
	public void addStudent(Student student, Course course) throws Exception;
	
	public void removeStudent(Student student, Course course) throws Exception;
	
	public void updateStudentWork(List<StudentWork> works) throws Exception;
}
